Automatic Synthesis of Safety-Related Software
نویسندگان
چکیده
For specific domains (e.g., data analysis, planning and scheduling, or state estimation), automated program synthesis systems have been developed which are capable of producing hundreds of lines of non-trivial code. However, the potential applicability of an automatic program synthesis system does not only depend on size and quality of the generated code, but also its ability to be integrated into the overall software process. Therefore, the generation of executable code alone is not enough. In this paper, we will describe three techniques which enhance the capabilities of a synthesis tool with respect to generation of explanations, certificates, and simulation data. The synthesis system encodes enough domain knowledge, such that the appropriate information can directly be extracted during the synthesis process. ExplainIt! is a component for the AMPHION/NAV system (synthesis of state estimation software) which automatically generates and displays explanations for each piece of the synthesized code, thus effectively achieving traceability between code and specification. For safety-relevant applications, software must undergo a rigorous certification process where it must be demonstrated that certain safety policies are not violated. Traditional formal verification approaches (e.g., with Hoare-style rules) are impractical, because they require large amounts of manual code annotations. In this paper, we discuss an extension of the AUTOBAYES system (synthesis of data analysis programs) for the automatic generation of code annotations which can be handled by a verification condition generator and an automated theorem prover. Speed of this approach compares favorably with commercial static analysis tools (e.g., PolySpace). Finally, we discuss a module of AUTOBAYES which synthesizes code for the generation of artificial data for simulation, experimentation, and testing purposes.
منابع مشابه
Structuring and Design of Reactive Systems Using RSDS and B
With the advent of comprehensive safety standards for software intensive safety related systems, such as IEC 61508 and its speciali-sations for particular industry sectors (medical, machinery, process, etc), there is a need to establish combinations of techniques which can be used by industry to demonstrate conformance to these standards for particular developments. In this paper we describe on...
متن کاملAutomatic Synthesis of Fault-tolerance
AUTOMATIC SYNTHESIS OF FAULT-TOLERANCE By Ali Ebnenasir Fault-tolerance is an important property of today’s software systems as we rely on computers in our daily affairs (e.g., medical equipments, transportation systems, etc). Since it is difficult (if not impossible) to anticipate all classes of faults that perturb a program while designing that program, it is desirable to incrementally add fa...
متن کاملCertification Support for Automatically Generated Programs
Although autocoding techniques promise large gains in software development productivity, their “real-world” application has been limited, particularly in safety-critical domains. Often, the major impediment is the missing trustworthiness of these systems: demonstrating—let alone formally certifying—the trustworthiness of automatic code generators is extremely difficult due to their complexity a...
متن کاملAutomatic Detection of Safety and Security Vulnerabilities in Open Source Software
Automatic Detection of Safety and Security Vulnerabilities in Open Source Software Syrine Tlili, Ph.D. Concordia University, 2009 Growing software quality requirements have raised the stakes on software safety and security. Building secure software focuses on techniques and methodologies of design and implementation in order to avoid exploitable vulnerabilities. Unfortunately, coding errors hav...
متن کاملSix Steps Towards Provably Safe
We present an approach to the speciication and implementation of provably safe software. It uses well-established tools and techniques that are usually employed to ensure correctness, rather than safety, of software. The approach comprises six steps, each of which is complemented by some proof obligations. For each step, the safety-related aspects are clearly elaborated. Thus, designers of safe...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002